#include<stdio.h>

int main()
{

    //指针：变量
    int* p=NULL;//定义指针变量，指针用之前初始化为空
    printf("%ld\n",sizeof(p));//指针占八个字节

    //指针变量存 内存地址
    int a=10;
    //取变量的地址符号
    p=&a;
    //打印地址的值16进制
    printf("%p\n",p);
    *p=100;//指针指向地址内存中值改为100
    //* 取值符号：取指针中存的地址的内存值
    printf("%d\n",*p);
    p=200;
    //访问非法地址 导致内存错误
    //存有非法地址的指针：野指针
    //当指针不在使用时，置空
    p=NULL;//空指针

    //二级指针:指向一个指针的地址
    int a=10;
    int *p=&a;
    int **p2=&p;
    printf("%d\n",**p2);
    //*p2==p
    //*p2==&a
    //**p2==a




    return 0;
}